package vip.liux.backend.application.service.product;

import vip.liux.application.dots.ListResultDto;
import vip.liux.contracts.shared.enums.product.CategoryType;

import java.util.List;

public interface CategoryService {
    CategoryDto createCategory(CreateCategoryDto categoryDto);

    ListResultDto<CategoryDto> getCategoryList(CategoryType type);

    CategoryDto getCategoryById(Long id);

    CategoryDto renameCategory(Long id, CreateCategoryDto categoryDto);

    void deleteCategory(Long id);

    /**
     * 获取所有父类目
     *
     * @param catNo 类目编号
     * @return 父类目列表
     */
    CategoryDto getCategoriesOfAllParent(String catNo);

    /**
     * 获取所有子类目
     *
     * @param catNo 类目编号
     * @return 子类目列表
     */
    CategoryDto getCategoriesOfAllChildren(String catNo);

    List<CategoryDto> findByCatNos(List<String> catRootNo);
}